#include <time.h>
#include "constantes.h"

int main(int argc, char *argv[])
{
	char mensaje[120];
	m_pedido msgpedido;									/* Estructura del pedido */
	m_pedido_precio msgpp;
	int colaid;
	key_t clave_cola;

	/* Armo el mensaje con el pedido */
	srand(time(NULL));
	msgpedido.mtype = MSG_PEDIDO;	
	msgpedido.pedido.mitad_chorizo = random()%8 + 1;
	msgpedido.pedido.mitad_pan = rand()%4 + 1;
	msgpedido.pedido.nro_cliente = getpid();

	clave_cola = ftok(DIRECTORIO, COLA_CL_ENC);

	if ( (colaid = msgget(clave_cola, 0666)) < 0 )						/* Obtengo el ID de la cola */
	{
		sprintf(mensaje, "Error al obtener el ID de la cola Cliente-Encargado\n");
		write(fileno(stdout), mensaje, strlen(mensaje));

		exit(-1);
	}
	
        printf("El ID de la cola es: %d \n", colaid);
        printf("Envio: %d %d %d\n", msgpedido.pedido.mitad_chorizo, msgpedido.pedido.mitad_pan, msgpedido.pedido.nro_cliente);

	if ( msgsnd(colaid, (m_pedido *) &msgpedido, sizeof(m_pedido), 0) < 0 )			/* Meto el pedido en la cola */	
	{
		sprintf(mensaje, "Error al encolar el pedido en Cliente-Encargado\n");
		write(fileno(stdout), mensaje, strlen(mensaje));

		exit(-1);
	}

	printf("\n\n");

	/* Respuesta avisando que procesaron todo wei 
        if ( msgrcv(colaid, (m_pedido_precio *) &msgpp, sizeof(m_pedido_precio), msgpedido.pedido.nro_cliente, 0) < 0 )
        {
                sprintf(mensaje, "Error al encolar el pedido en Cliente-Encargado\n");
                write(fileno(stdout), mensaje, strlen(mensaje));

                exit(-1);
        }

        printf("Me llego: \n");
        printf("Chorizos: %d\n", msgpp.pp.pedido.mitad_chorizo);
        printf("Panes: %d\n", msgpp.pp.pedido.mitad_pan);
        printf("Nro. Cliente: %d\n", msgpp.pp.pedido.nro_cliente);
        printf("Precio: %d\n", msgpp.pp.precio);
	*/

return 0;
}
